# See "gn args <out_dir> --list" for available build arguments.
#gn args /tmp/out/Default --list

android_full_debug = false
#    //build/config/compiler/BUILD.gn:21
#    Normally, Android builds are lightly optimized, even for debug builds, to
#    keep binary size down. Setting this flag to true disables such optimization

blink_asserts_always_on = true
#    //third_party/WebKit/Source/config.gni:27

#TODO: do I need this?
blink_gc_plugin = false
#    //third_party/WebKit/Source/config.gni:24
#    Set to true to enable the clang plugin that checks the usage of the Blink
#    garbage-collection infrastructure during compilation.

blink_gc_plugin_dump_graph = false
#    //third_party/WebKit/Source/config.gni:25

build_cpu_arch  = "x64"
#    //build/config/BUILDCONFIG.gn:63

build_ffmpegsumo = true
#    //third_party/ffmpeg/ffmpeg_options.gni:26
#    When set to false will build Chromium against Chrome's FFmpeg headers, but
#    not build ffmpegsumo itself.  Users are expected to build and provide
#    their own version of ffmpegsumo.

build_os = "linux"
#    //build/config/BUILDCONFIG.gn:64


#bundle_freetype = false
#    //third_party/pdfium/BUILD.gn:12
#    On Android there's no system FreeType. On Windows and Mac, only a few
#    methods are used from it.

clang_use_chrome_plugins = false
#    //build/config/clang/clang.gni:8
#    Indicates if the build should use the Chrome-specific plugins for enforcing
#    coding guidelines, etc. Only used when compiling with Clang.

#TODO: change this to false
compile_credentials = true
#    //sandbox/linux/BUILD.gn:11

#TODO: change this to false
compile_seccomp_bpf_demo = true
#    //sandbox/linux/BUILD.gn:14

compile_suid_client = true
#    //sandbox/linux/BUILD.gn:9

#content_shell_product_name = "Content Shell"
#    //content/shell/BUILD.gn:14

#content_shell_version = "19.77.34.5"
#    //content/shell/BUILD.gn:19
#    The "19" is so that sites that sniff for version think that this is
#    something reasonably current; the "77.34.5" is a hint that this isn't a
#    standard Chrome.

cpu_arch = "x64"
#    //build/config/BUILDCONFIG.gn:61
#    (dpranke): These values are here for backwards compatibility and
#    should be deleted when all of the builders and configs have been updated.

#current_cpu = ""
#    (Internally set)

#current_os = ""
#    (Internally set)

#TODO: try true when debug needed, or just do it anyway
dcheck_always_on = false
#    //build/config/BUILD.gn:24
#    Set to true to enable dcheck in Release builds.

debug_devtools = false
#    //build/config/features.gni:44
#    If debug_devtools is set to true, JavaScript files for DevTools are stored
#    as is and loaded from disk. Otherwise, a concatenated file is stored in
#    resources.pak. It is still possible to load JS files from disk by passing
#    --debug-devtools cmdline switch.

disable_file_support = false
#    //net/BUILD.gn:51
#    Disables support for file URLs.  File URL support requires use of icu.

disable_iterator_debugging = false
#    //build/config/BUILD.gn:15
#    When set, turns off the (normally-on) iterator debugging and related stuff
#    that is normally turned on for Debug builds. These are generally useful for
#    catching bugs but in some cases may cause conflicts or excessive slowness.

#TODO: try true
dont_embed_build_metadata = false
#    //build/config/BUILD.gn:21
#    Set to true to not store any build metadata (this isn't working yet but
#    this flag will help us to get there). See http://crbug.com/314403.
#    (sebmarchand): Update this comment once this flag guarantee that
#        there's no build metadata in the build artifacts.

enable_browser_cdms = false
#    //media/media_options.gni:50
#    Enables browser side Content Decryption Modules. Required for embedders
#    (e.g. Android and ChromeCast) that use a browser side CDM.

enable_full_stack_frames_for_profiling = false
#    //build/config/compiler/BUILD.gn:38
#    Compile in such a way as to make it possible for the profiler to unwind full
#    stack frames. Setting this flag has a large effect on the performance of the
#    generated code than just setting profiling, but gives the profiler more
#    information to analyze.
#    Requires profiling to be set to true.

#enable_mdns = true
enable_mdns = false
#    //build/config/features.gni:20
#    Multicast DNS.

enable_media_mojo_renderer = false
#    //media/media_options.gni:53
#    Experiment to enable mojo based media renderer: http://crbug.com/431776

enable_mpeg2ts_stream_parser = false
#    //media/media_options.gni:46
#    Enables the MPEG2-TS stream parser for use with Media Source. Disabled by
#    default since it's not available on the normal Web Platform and costs money.

enable_nacl = false
#    //build/config/features.gni:36

enable_nacl_untrusted = false
#    //build/config/features.gni:37

enable_oilpan = false
#    //third_party/WebKit/public/features.gni:7
#    Enables the Oilpan garbage-collection infrastructure.

#TODO: try true which is default; see if false disabled plugins or extensions!
enable_plugins = false
#    //build/config/features.gni:22

enable_pnacl = false
#    //build/config/features.gni:38

enable_profiling = false
#    //build/config/compiler/BUILD.gn:31
#    Compile in such a way as to enable profiling of the generated code. For
#    example, don't omit the frame pointer and leave in symbols.

#XXX: Build argument has no effect. (with my patches)
enable_webrtc = false
#    //build/config/features.gni:48
#    Enables WebRTC.
#    (GYP) make mac and android work.

ffmpeg_branding = "Chrome"
#ffmpeg_branding = "Chromium"
#    //third_party/ffmpeg/ffmpeg_options.gni:21
#    Controls whether we build the Chromium or Google Chrome version of FFmpeg.
#    The Google Chrome version contains additional codecs. Typical values are
#    Chromium, Chrome, ChromiumOS, and ChromeOS.


google_api_key = ""
#    //google_apis/BUILD.gn:45
#    Set these to bake the specified API keys and OAuth client
#    IDs/secrets into your build.
   
#    If you create a build without values baked in, you can instead
#    set environment variables to provide the keys at runtime (see
#    src/google_apis/google_api_keys.h for details).  Features that
#    require server-side APIs may fail to work if no keys are
#    provided.
   
#    Note that if you are building an official build or if
#    use_official_google_api_keys has been set to true (explicitly or
#    implicitly), these values will be ignored and the official
#    keys will be used instead.

google_default_client_id = ""
#    //google_apis/BUILD.gn:48
#    See google_api_key.

google_default_client_secret = ""
#    //google_apis/BUILD.gn:51
#    See google_api_key.

#host_cpu = "x64"
#    (Internally set)

#host_os = "linux"
#    (Internally set)

icu_use_data_file = true
#    //third_party/icu/config.gni:15
#    Tells icu to load an external data file rather than rely on the icudata
#    being linked directly into the binary.
   
#    This flag is a bit confusing. As of this writing, icu.gyp set the value to
#    0 but common.gypi sets the value to 1 for most platforms (and the 1 takes
#    precedence).
   
#    (GYP) We'll probably need to enhance this logic to set the value to
#    true or false in similar circumstances.

#TODO: maybe set to the default false if performance is poor?
#FIXME: set to true and fix those undefined references?
is_asan = false
#    //build/config/BUILDCONFIG.gn:99
#    Compile for Address Sanitizer to find memory bugs.

is_chrome_branded = false
#    //build/config/BUILDCONFIG.gn:96
#    Select the desired branding flavor. False means normal Chromium branding,
#    true means official Google Chrome branding (requires extra Google-internal
#    resources).

is_clang = true
#    //build/config/BUILDCONFIG.gn:85
#    Set to true when compiling with the Clang compiler. Typically this is used
#    to configure warnings.

#TODO: what does this mean? probably false=static true=dynamic(shared) libraries
#TODO: try true?
is_component_build = true
#    //build/config/BUILDCONFIG.gn:75
#    Component build.

#TODO: is this needed for when dcheck is true?
is_debug = false
#    //build/config/BUILDCONFIG.gn:78
#    Debug build.

is_desktop_linux = true
#    //build/config/BUILDCONFIG.gn:81
#    Whether we're a traditional desktop unix.

#TODO: try true?
is_ensemble = false
#    //media/media_options.gni:59
#    Override to omit code that depends on the X11, font, and graphics libraries.

#TODO: try true unless performance is decreased
is_lsan = false
#    //build/config/BUILDCONFIG.gn:102
#    Compile for Leak Sanitizer to find leaks.

#TODO: switch to false if performance is wanted
is_msan = true
#    //build/config/BUILDCONFIG.gn:105
#    Compile for Memory Sanitizer to find uninitialized reads.

is_official_build = false
#    //build/config/BUILDCONFIG.gn:91
#    Selects the desired build flavor. Official builds get additional
#    processing to prepare for release. Normally you will want to develop and
#    test with this flag off.

is_openbsd = false
#    //media/media_options.gni:56
#    (GYP): This should be a platform define.

#TODO: switch to false if performance is wanted
is_tsan = true
#    //build/config/BUILDCONFIG.gn:108
#    Compile for Thread Sanitizer to find threading bugs.

#link_chrome_on_windows = false
#    //build/config/BUILDCONFIG.gn:120
#    (brettw) remove this flag (and therefore enable linking all targets) on
#    Windows when we have sufficient bot capacity. In the meantime, you can
#    enable linking for local compiles.

link_pulseaudio = true
#    //media/media_options.gni:9
#    Allows distributions to link pulseaudio directly (DT_NEEDED) instead of
#    using dlopen. This helps with automated detection of ABI mismatches and
#    prevents silent errors.

#TODO: switch to true(default) if errors happen - it was 0 aka false in gyp
linux_use_bundled_binutils = false
#    //build/config/compiler/BUILD.gn:27
#    Whether to use the binary binutils checked into third_party/binutils.
#    These are not multi-arch so cannot be used except on x86 and x86-64 (the
#    only two architectures that are currently checked in). Turn this off when
#    you are using a custom toolchain and need to control -B in cflags.

media_use_ffmpeg = true
#    //media/media_options.gni:14
#    Enable usage of FFmpeg within the media library. Used for most software
#    based decoding, demuxing, and sometimes optimized FFTs. If disabled,
#    implementors must provide their own demuxers and decoders.

media_use_libvpx = true
#    //media/media_options.gni:18
#    Enable usage of libvpx within the media library. Used for software based
#    decoding of VP9 and VP8A type content.


os = "linux"
#    //build/config/BUILDCONFIG.gn:62

pkg_config = ""
#    //build/config/linux/pkg_config.gni:33
#    A pkg-config wrapper to call instead of trying to find and call the right
#    pkg-config directly. Wrappers like this are common in cross-compilation
#    environments.
#    Leaving it blank defaults to searching PATH for 'pkg-config' and relying on
#    the sysroot mechanism to find the right .pc files.

#TODO: was false by default (check https://www.youtube.com/html5  if that changes the 2nd row and if can watch live streams)
proprietary_codecs = true
#    //build/config/features.gni:51
#    Enables proprietary codecs and demuxers; e.g. H264, MOV, AAC, and MP3.

#TODO: nice one!
root_extra_deps = []
#    //BUILD.gn:22
#    A list of extra dependencies to add to the root target. This allows a
#    checkout to add additional targets without explicitly changing any checked-
#    in files.


symbol_level = -1
#    //build/config/BUILDCONFIG.gn:72
#    How many symbols to include in the build. This affects the performance of
#    the build since the symbols are large and dealing with them is slow.
#      2 means regular build with symbols.
#      1 means minimal symbols, usually enough for backtraces only.
#      0 means no symbols.
#      -1 means auto-set (off in release, regular in debug).

#target_cpu = ""
#    (Internally set)

#target_os = ""
#    (Internally set)

target_sysroot = ""
#    //build/config/sysroot.gni:11
#    The absolute path of the sysroot that is applied when compiling using
#    the target toolchain.

toolkit_views = true
#    //build/config/ui.gni:31
#    True means the UI is built using the "views" framework.

#TODO: what others are there?
use_allocator = "tcmalloc"
#    //build/config/allocator.gni:14
#    Memory allocator to use. Set to "none" to use default allocator.

use_alsa = true
#    //media/media_options.gni:38

#TODO: true is default
use_ash = false
#    //build/config/ui.gni:17
#    Indicates if Ash is enabled. Ash is the Aura Shell which provides a
#    desktop-like environment for Aura. Requires use_aura = true

#TODO: true is default; FIXME: need to try false and fix errors!
use_aura = true
#    //build/config/ui.gni:28
#    Indicates if Aura is enabled. Aura is a low-level windowing library, sort
#    of a replacement for GDI or GTK.

use_ccache = true
#    //build/toolchain/ccache.gni:24
#    Set to true to enable ccache.  Probably doesn't work on windows.

use_clang_type_profiler = false
#    //build/toolchain/clang.gni:8
#    Enable the optional type profiler in Clang, which will tag heap allocations
#    with the allocation type.

use_cras = false
#    //media/media_options.gni:27
#    Override to dynamically link the cras (ChromeOS audio) library.

  # use_debug_fission: whether to use split DWARF debug info
  # files. This can reduce link time significantly, but is incompatible
  # with some utilities such as icecc and ccache. Requires gold and
  # gcc >= 4.8 or clang.
  # http://gcc.gnu.org/wiki/DebugFission
#XXX: false because we're using ccache
use_debug_fission = false
#    //build/config/compiler/BUILD.gn:50

use_evdev_gestures = false
#    //build/config/ui.gni:24
#    Support ChromeOS touchpad gestures with ozone.

use_glib = true
#    //build/config/ui.gni:34
#    Whether we should use glib, a low level C utility library.

use_gold = true
#    //build/config/compiler/BUILD.gn:42
#    Use gold for linking on 64-bit Linux only (on 32-bit it runs out of
#    address space, and it doesn't support cross-compiling).

use_goma = false
#    //build/toolchain/goma.gni:12
#    Set to true to enable distributed compilation using Goma.

#goma_dir = "/home/emacs/goma"
#    //build/toolchain/goma.gni:20
#    Absolute directory containing the Goma source code.

use_icu_alternatives_on_android = false
#    //url/config.gni:7
#    Switches to using platform functions instead of ICU on Android.


#TODO: set to true(default) if something GPU related doesn't work
use_libpci = false
#    //gpu/config/BUILD.gn:9
#    Use the PCI lib to collect GPU information on Linux.

#XXX: yes "false" not "" - interestingly, cannot use quotes!
#ERROR at //google_apis/BUILD.gn:66:7: Condition does not evaluate to a boolean value.
#  if (use_official_google_api_keys) {
#    --  ^---------------------------
#    This is a value of type "string" instead.
use_official_google_api_keys = false
#    //google_apis/BUILD.gn:30
#    You can set the variable 'use_official_google_api_keys' to true
#    to use the Google-internal file containing official API keys
#    for Google Chrome even in a developer build.  Setting this
#    variable explicitly to true will cause your build to fail if the
#    internal file is missing.
   
#    The variable is documented here, but not handled in this file;
#    see //google_apis/determine_use_official_keys.gypi for the
#    implementation.
   
#    Set the variable to false to not use the internal file, even when
#    it exists in your checkout.
   
#    Leave it unset or set to "" to have the variable
#    implicitly set to true if you have
#    src/google_apis/internal/google_chrome_api_keys.h in your
#    checkout, and implicitly set to false if not.
   
#    Note that official builds always behave as if the variable
#    was explicitly set to true, i.e. they always use official keys,
#    and will fail to build if the internal file is missing.

#TODO: false is default - was NSS what firefox was using?
use_openssl = false
#    //build/config/crypto.gni:14
#    Use OpenSSL instead of NSS. This is used for Android, Mac, NaCl untrusted
#    code, and Windows, and is experimental in other cases (see
#    http://crbug.com/62803).

#TODO: try true
use_ozone = false
#    //build/config/ui.gni:21
#    Indicates if Ozone is enabled. Ozone is a low-level library layer for Linux
#    that does not require X11.

use_pulseaudio = true
#    //media/media_options.gni:40

use_system_harfbuzz = true
#    //third_party/harfbuzz-ng/BUILD.gn:22
#    Since version 1.31.0, pangoft2 which we depend on pulls in harfbuzz
#    anyways. However, we want to have control of the version of harfbuzz
#    we use, so don't use system harfbuzz for official builds, unless we
#    are building for chrome os, where we have the system harfbuzz under
#    control as well. We also do not want to use the system harfbuzz
#    when cross-compiling for ARM.

#TODO: try true?
use_system_libjpeg = false
#    //third_party/BUILD.gn:11
#    Uses system libjpeg. If true, overrides use_libjpeg_turbo.

use_libjpeg_turbo = true
#    //third_party/BUILD.gn:15
#    Uses libjpeg_turbo as the jpeg implementation. Has no effect if
#    use_system_libjpeg is set.

#TODO: i dno; XXX: gn says the argument has no effect
#use_system_libsrtp = false
#    //third_party/libsrtp/BUILD.gn:6

use_v4l2_codec = false
#    //content/common/common.gni:21
#    Indicates if Video4Linux2 codec is used. This is used for all CrOS
#    platforms which have v4l2 hardware encoder / decoder.

use_v4lplugin = false
#    //content/common/common.gni:17
#    Indicates if V4L plugin is used.


#--------------------------------
#extra unmentioned flags, found in *.gni files
#look what sets them: build/config/features.gni

# TODO: maybe we don't need this? check if GPU is still accelerated without this
# libudev usage. This currently only affects the content layer.
#use_udev = is_linux
use_udev = false

# Enable the spell checker.
enable_spellcheck = true

#enable_pepper_cdms = enable_plugins && (is_linux || is_mac || is_win)
enable_pepper_cdms = false


# Enable basic printing support and UI.
#enable_basic_printing = !is_chromeos
enable_basic_printing = false

# Enable printing with print preview. It does not imply
# enable_basic_printing. It's possible to build Chrome with preview only.
#enable_print_preview = !is_android
enable_print_preview = false

# The seccomp-bpf sandbox is only supported on three architectures
# currently.
# Do not disable seccomp_bpf anywhere without talking to
# security@chromium.org!
#use_seccomp_bpf = (is_linux || is_android) &&
#                  (current_cpu == "x86" || current_cpu == "x64" ||
#                   current_cpu == "arm" || current_cpu == "mipsel")

# Enable notifications everywhere except iOS.
#enable_notifications = !is_ios
enable_notifications = false

# (brettw) this should be moved to net and only dependents get this define.
disable_ftp_support = false

#enable_web_speech = !is_android && !is_ios
enable_web_speech = false

#TODO: try false?
use_dbus = true

enable_extensions = true

# Variable safe_browsing is used to control the build time configuration for
# safe browsing feature. Safe browsing can be compiled in 3 different levels: 0
# disables it, 1 enables it fully, and 2 enables only UI and reporting features
# without enabling phishing and malware detection. This is useful to integrate
# a third party phishing/malware detection to existing safe browsing logic.
#if (is_android) {
#  safe_browsing_mode = 2
#} else if (is_ios) {
#  safe_browsing_mode = 0
#} else {
#  safe_browsing_mode = 1
#}
safe_browsing_mode = 0

#no idea what this is xD
#enable_configuration_policy = true
enable_configuration_policy = false

# Enables support for background apps.
#enable_background = !is_ios && !is_android
enable_background = false

enable_task_manager = true

#use_cups = is_desktop_linux || is_mac
use_cups = false

#enable_themes = !is_android && !is_ios
enable_themes = false

#TODO: what is this?
# TODO(scottmg) remove this when we've fixed printing.
#win_pdf_metafile_for_printing = true
win_pdf_metafile_for_printing = false


#TODO: what is this? try false when compile already works!
#enable_captive_portal_detection = !is_android && !is_ios

# Enables use of the session service, which is enabled by default.
# Android stores them separately on the Java side.
#TODO: maybe try false and see if can use multiple profiles still?
#enable_session_service = !is_android && !is_ios

# Whether we are using the rlz library or not.  Platforms like Android send
# rlz codes for searches but do not use the library.
#enable_rlz = is_chrome_branded && (is_win || is_mac || is_ios || is_chromeos)
enable_rlz = false

#enable_plugin_installation = is_win || is_mac
enable_plugin_installation = false

#TODO: try false? see if Settings still works
#enable_app_list = !is_ios && !is_android
#enable_settings_app = enable_app_list && !is_chromeos

#enable_supervised_users = !is_ios

#TODO: do we really need this? with mdns
#enable_service_discovery = enable_mdns || is_mac
enable_service_discovery = false

#enable_autofill_dialog = !is_ios && !(is_android && is_android_webview_build)
enable_autofill_dialog = false
#FIXME: if you set this to true it will fail to build in autofill_dialog_controller_impl.cc due to I18N_ADDRESS_VALIDATION_DATA_URL not being defined

#enable_wifi_bootstrapping = is_win || is_mac
enable_wifi_bootstrapping = false

# Image loader extension is enabled on ChromeOS only.
#enable_image_loader_extension = is_chromeos

#enable_remoting = !is_ios && !is_android && !is_linux
enable_remoting = false

#enable_google_now = !is_ios && !is_android
enable_google_now = false

#enable_one_click_signin = is_win || is_mac || (is_linux && !is_chromeos)
enable_one_click_signin = false

# Chrome OS: whether to also build the upcoming version of
# ChromeVox, which can then be enabled via a command-line switch.
enable_chromevox_next = false

# Use brlapi from brltty for braille display support.
#use_brlapi = is_chromeos
use_brlapi = false

#TODO: maybe this is needed?
#enable_media_router = !is_ios && !is_android
enable_media_router = false

# Option controlling the use of GConf (the classic GNOME configuration
# system).
# TODO(GYP) also require !embedded to enable.
#use_gconf = is_linux && !is_chromeos

# Hangout services is an extension that adds extra features to Hangouts.
# For official GYP builds, this flag is set, it will likely need to be
# parameterized in the future for a similar use.
enable_hangout_services_extension = false


